﻿/**************************************************************
 * 
 * Copyright © Dmitry Kukushkin <codecity@gmail.com> 2007
 * All Rights Reserved
 * 
 **************************************************************/

using System;
using System.Runtime.Serialization;

namespace WebMoney.SignerFX.Exceptions
{
    /// <summary>
    /// Неверные данные резервной копии ключей, или WMID и пароль не соответсвуют им
    /// </summary>
    [Serializable]
    public class BadKeysException : ApplicationException
    {
        private string _location;

        /// <summary>
        /// Точка, где возникла ошибка
        /// </summary>
        public string Location
        {
            get
            {
                return _location;
            }
        }

        /// <summary>
        /// Создание объекта
        /// </summary>
        /// <param name="message">Сообщение</param>
        /// <param name="location">Расположение в коде</param>
        public BadKeysException(string message, string location)
            : base(message)
        {
            _location = location;
        }

        /// <summary>
        /// Создание объекта
        /// </summary>
        /// <param name="message">Сообщение</param>
        /// <param name="innerException">Породившее исключение</param>
        public BadKeysException(string message, Exception innerException)
            : base(message, innerException)
        {
            _location = "not specified";
        }

        /// <summary>
        /// Создание объекта
        /// </summary>
        /// <param name="message">Сообщение</param>
        public BadKeysException(string message)
            : this(message, "not specified")
        {
        }

        /// <summary>
        /// Создание объекта
        /// </summary>
        public BadKeysException()
            : this(string.Empty)
        {
        }

        /// <summary>
        /// Создание объекта
        /// </summary>
        /// <param name="info">Данные из сериализованных объектов о созданном исключении</param>
        /// <param name="context">Контекстные сведения об источнике или назначении</param>
        protected BadKeysException(SerializationInfo info, StreamingContext context)
            : base(info, context)
        {}
    }
}
